<?php

namespace Framework;
/**
*会话管理类
*
*
*/
class Session{
/**
*开启会话
*如果会话尚未开始，则开启一个新的会话
*@return void 无法返回值
*/
    public static function start() {
        if (session_status() == PHP_SESSION_NONE) {
            session_start();
        }
    }
    /**
    *开启会话
    *如果会话尚未开始，则开启一个新的会话
    *@param string $key 会话键名
    *@param mixed
    *@return void 无法返回值
    */
    public static function set($key, $value){
        $_SESSION[$key] = $value;
    }
    /**
        *
        *
        *@param string $key 会话键名
        *@return mixed 返回
        */
    public static function get($key, $default = null) {
        return isset($_SESSION[$key]) ? $_SESSION[$key] : $default;
    }
    /**
     *
     *
     *@param string $key 会话键名
     *@return bool
     */
    public static function has($key){
        return isset($_SESSION[$key]);
    }
     /**
     *
     *
     *@param string $key 会话键名
     *@return void 无返回值
     */
     public static function clear($key){
        if (isset($_SESSION[$key])){
            unset($_SESSION[$key]);
        }
     }
     /**
      *
      *
      *
      *@return void
      */
      public static function clearAll(){
        session_unset();
        session_destroy();
      }
      /**
       *设置闪存消息
       *
       *
       *@return void
       */
      public static function setFlashMessage($key, $message){
        self::set('flash_' . $key, $message);
      }
      /**
       *获得闪存后立即删除
       *
       *
       *@return void
       */
       public static function getFlashMessage($key, $default = null){
            $message = self::get('flash_' . $key, $default);
            self::clear('flash_' . $key);
            return $message;
       }
}